package mylab.usm.oauth2.client.config;

public enum AuthStrategy {

    /**
     * 集成本地账号密码登录，不使用第三方认证服务
     */
    simple,
    /**
     * 使用第三方OAuth2.0服务之授权码模式（最广泛使用的模式）
     */
    oauth2_authorization_code,
    /**
     * 使用第三方OAuth2.0服务之隐藏式模式（适用于纯前端模式）
     */
    oauth2_implicit,
    /**
     * 使用第三方OAuth2.0服务之密码式模式（适用于用户高度信任的应用）
     */
    oauth2_password,
    /**
     * 使用第三方OAuth2.0服务之客户端凭证模式（适用于没有前端的命令行应用）
     */
    oauth2_client_credentials,
    /**
     * 使用标准的第三方OIDC服务（基于OAuth2服务）,如OKTA
     */
    oidc,
    /**
     * 使用知名第三方平台的认证服务（类似OAuth2服务）
     */
    social,
    ;
}
